<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="prepare-aboutsbus">
  <?dbhtml filename="aboutsbus.html"?>

  <title>Информация о SBU (Стандартная единица времени сборки)</title>

  <para>Многим хотелось бы знать заранее приблизительное время, которое будет затрачено на компиляцию и установку каждого пакета. Так как система LFS может быть создана на разных машинах, точное время не оценить. На компиляцию и сборку одного из больших пакетов - Glibc, может уйти примерно 20 минут на быстрых компьютерах, но на медленных машинах может занять до трёх дней! Вместо фактического времени, будет использоваться показатель SBU (Стандартная единица времени сборки).</para>

  <para>Показатель SBU вычисляется следующим образом: первый пакет, который будет скомпилирован в этой книге - является Binutils, сборка которого обсуждается в разделе <xref linkend="chapter-temporary-tools"/>. Время, которое будет затрачено на компиляцию этого пакета будет определено как одна единица времени сборки (Standard Build Unit) или (SBU). Все остальные значения времени при компиляции других пакетов будет считаться относительно этой единицы.</para>

  <para>Например, рассмотрим пакет, время сборки которого равно 4.5 SBU. Это означает, если сборка и установка пакета Binutils заняла 10 минут, то время на сборки и установки будет приблизительно 45 минут. К счастью, время сборки многих пакетов гораздо меньше, чем у Binutils.</para>

  <para>В целом, информация о SBU может быть не точна и значения могут различаться в пределах нескольких десятков минут. Потому что существует множество факторов, таки как версия GCC хост-системы и прочие аспекты.</para>

  <note>
    <para>Для многих современных компьютеров, с несколькими процессорами или ядрами, время компиляции пакета можно сократить, выполняя процедуру "параллельной сборки", указанием в переменной окружения или аргументом при использовании программы <command>make</command> сколько процессоров доступно. Например процессор Core2Duo может выполнять сборку в два потока, если указать следующее:</para>

    <screen role="nodump"><userinput>export MAKEFLAGS='-j 2'</userinput></screen>

    <para>или выполнить компиляции с указанием:</para>

    <screen role="nodump"><userinput>make -j2</userinput></screen>

    <para>Когда на машине несколько процессоров, информация SBU будет искажена больше, чем при выполнении сборки в один поток. В некоторых случаях процесс сборки может завершиться неудачно. К тому же анализ выходного потока при совершении сборки будет трудночитаем, так как вывод будет содержать строки вперемешку с разных потоков. Если произошла проблема сборки в несколько потоков, выполните сборку в один поток, и проанализируйте сообщение об ошибке.</para>
  </note>

</sect1>

